The scheduling of jobs, such as write destaging, read requests, and load balancing in a data storage system has an effect on the performance of the data storage system as a whole. The performance of the data storage system, in turn, affects the performance of applications running on host systems using the data in the data storage system. Optimizing the scheduling of jobs in a data storage system may improve the response time to I/O from applications that are using the system.
Many hosts may use the same data storage system, and data storage systems can be made up of a number of physical memory devices, such as hard disk drives also known as spindles. Typically, a host does not address a physical memory device in a data storage system directly, but instead addresses a logical unit. A logical unit associated with a data storage system may be made up of one or more spindles or portions thereof, which are within the data storage system. The data storage system manages I/O requests from the hosts by mapping requests directed to logical units from the hosts to the appropriate physical memory devices. The data storage system also schedules and processes the I/O requests from the host. An example of a data storage system having the foregoing basic architecture is the SYMMETRIX data storage system available from EMC Corporation of Hopkinton, Mass.
In the data storage system, there is typically a plurality of physical, persistent memory devices, or spindles. Each spindle may be partitioned into logical devices. A disk adapter (DA), which is the interface between the cache and one or more spindles, may schedule jobs for the associated spindles. A scheduling algorithm in the DA may determine when any job will be performed, including system maintenance jobs such as load-balancing, or read and write requests from hosts using the data storage system.
Typically, a write request from the host is first stored in the cache memory of the data storage system. A write request is destaged when data is moved from the cache and written to the appropriate logical device. The job scheduler in the DA controls when this destage will occur, how many write requests will be destaged at a time, and which write requests to perform. Prior art algorithms for job scheduling typically assign read requests higher priority than write requests and schedule the destage of write requests from the cache when a threshold number of writes pending in the cache for a logical device has been reached. One such algorithm for job scheduling is described in U.S. Pat. No. 6,904,470, which issued on Jun. 7, 2005 to Adi Ofer et al. Another type of prior art algorithm for scheduling the destage of write requests allocates a percentage of the operation time that the DA should allocate to destaging write requests.